home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Games / Hexagonal CA / HexCA.c / NumberStringUtil.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-25  |  2.0 KB  |  107 lines  |  [TEXT/CWIE]

  1. /*
  2. "NumberStringUtil.c" by Alexander Kasprzyk. ©1996
  3. alex@kasprzyk.demon.co.uk
  4. */
  5.  
  6. #include "NumberStringUtilPr.h"
  7.  
  8. // Add1ToString -    call to add 1 to the numerical string
  9. void Add1ToString( register StringPtr string )
  10. {
  11.     register char            count = 1;
  12.     register unsigned char    *ptr = string + *string;
  13.     
  14.     (*ptr)++;
  15.     while( *ptr > 0x39 )
  16.     {
  17.         *ptr = 0x30;
  18.         ptr--;
  19.         if( ptr == string  )
  20.         {
  21.             (*string)++;
  22.             *(string + *string) = 0x30;
  23.             ptr++;
  24.             *ptr = 0x31;
  25.         }
  26.         else
  27.             (*ptr)++;
  28.     }
  29. }
  30.  
  31. // NumToStringUChar -    call to convert an unsigned char to a string
  32. void NumToStringUChar( register unsigned char num, StringPtr string )
  33. {
  34.     register unsigned char    *bin = string, *count, *off;
  35.     unsigned char            *tru;
  36.     
  37.     do
  38.     {
  39.         bin++;
  40.         *bin = 0x30 + (num - ((unsigned char)(num / 10) * 10));
  41.         num /= 10;
  42.     }while( num );
  43.     
  44.     tru = ((bin - string)/2) + string;
  45.     
  46.     for( count = string + 1, off = bin; count <= tru; count++, off-- )
  47.     {
  48.         register char    temp = *count;
  49.         
  50.         *count = *off;
  51.         *off = temp;
  52.     }
  53.     
  54.     *string = bin - string;
  55. }
  56.  
  57. // NumToStringUShort -    call to convert an unsigned short to a string
  58. void NumToStringUShort( register unsigned short num, StringPtr string )
  59. {
  60.     register unsigned char    *bin = string, *count, *off;
  61.     unsigned char            *tru;
  62.     
  63.     do
  64.     {
  65.         bin++;
  66.         *bin = 0x30 + (num - ((unsigned short)(num / 10) * 10));
  67.         num /= 10;
  68.     }while( num );
  69.     
  70.     tru = ((bin - string)/2) + string;
  71.     
  72.     for( count = string + 1, off = bin; count <= tru; count++, off-- )
  73.     {
  74.         register char    temp = *count;
  75.         
  76.         *count = *off;
  77.         *off = temp;
  78.     }
  79.     
  80.     *string = bin - string;
  81. }
  82.  
  83. // NumToStringULong -    call to convert an unsigned long to a string
  84. void NumToStringULong( register unsigned long num, StringPtr string )
  85. {
  86.     register unsigned char    *bin = string, *count, *off;
  87.     unsigned char            *tru;
  88.     
  89.     do
  90.     {
  91.         bin++;
  92.         *bin = 0x30 + (num - ((unsigned long)(num / 10) * 10));
  93.         num /= 10;
  94.     }while( num );
  95.     
  96.     tru = ((bin - string)/2) + string;
  97.     
  98.     for( count = string + 1, off = bin; count <= tru; count++, off-- )
  99.     {
  100.         register char    temp = *count;
  101.         
  102.         *count = *off;
  103.         *off = temp;
  104.     }
  105.     
  106.     *string = bin - string;
  107. }